#pragma once
#include "DXAMLCommon.h"
#include "IPALMemory.h"
#include "IPALSurface.h"
#include "IPALDirectory.h"




class IPALOfflineApplicationStore
{
public:
	virtual HRESULT GetXap(IPALMemory **) = 0;
	virtual HRESULT GetXapLocation(CXString **) = 0;
	virtual HRESULT StoreXap(IPALMemory *) = 0;
	virtual HRESULT HasIconForConsentUI(unsigned int *) = 0;
	virtual HRESULT GetIconForConsentUI(IPALMemory **) = 0;
	virtual HRESULT AddIconImage(IPALMemory *, unsigned int, IPALSurface *) = 0;
	virtual HRESULT SaveIcon(IPALDirectory *) = 0;
	virtual HRESULT GetProperty(const XCHAR * , CXString **) = 0;
	virtual HRESULT SetProperty(const XCHAR * , CXString *, unsigned int) = 0;
	virtual HRESULT SetProperty(const XCHAR * , CXString *) = 0;
	virtual ApplicationState GetState() = 0;
	virtual unsigned int IsHealthy() = 0;
	virtual unsigned int IsInInstallableState() = 0;
	virtual HRESULT IsInTrustedLocation(unsigned int *) = 0;
	virtual HRESULT PublishApplication() = 0;
	virtual HRESULT PublishMetadata() = 0;
	virtual HRESULT PrepareForRemove() = 0;
	virtual HRESULT Remove() = 0;
	virtual HRESULT HandleRemoveFailed() = 0;
	virtual HRESULT PrepareForUpdate(IPALOfflineApplicationStore **) = 0;
	virtual HRESULT Update() = 0;
	virtual HRESULT GetLastUpdateTime(int *) = 0;
	virtual HRESULT MoveAppToTrustedStore(CXString *) = 0;
	virtual XUINT32 Release() = 0;
	virtual XUINT32 AddRef() = 0;
};